この連載記事では、InterSystemsデータプラットフォーム用のPython Gatewayについて説明します。 また、InterSystems IRISからPythonコードなどを実行します。 このプロジェクトは、InterSystems IRIS環境にPythonの力を与えます。
- 任意のPythonコードを実行する
- InterSystems IRISからPythonへのシームレスなデータ転送
- Python相互運用アダプタでインテリジェントな相互運用ビジネスプロセスを構築する
- InterSystems IRISからのPythonコンテキストの保存、調査、変更、復元
その他の記事
現時点での連載計画です(変更される可能性があります)。
- パート I:概要、展望、紹介
- パート II:インストールとトラブルシューティング <-- 現在、この記事を参照しています
- パート III:基本機能
- パート IV:相互運用アダプタ
- パート V:Execute関数
- パート VI:動的ゲートウェイ
- パート VII:プロキシゲートウェイ
- パート VIII:使用事例とML Toolkit
インストール
この記事はPython Gatewayをインストールするのに役立ちます。Python Gatewayをインストールして使用する方法はいくつか存在します。
- ホスト
- Windows
- Linux
- Mac
- Docker
- 作成済みのイメージをプルする
- 独自のイメージをビルドする
インストール方法に関係なく、コードが必要になります。 コードはリリースページでしかダウンロードできません。 リリースページにはテスト済みの安定版リリースが公開されていますので、最新のものを入手してください。 現在のバージョンは0.7ですが、将来的には新しいものになるでしょう。 リポジトリをクローンまたはダウンロードせず、最新のリリースをダウンロードしてください。
ホスト
ホストOSにPython Gatewayをインストールする場合は、先に(OSに関係なく)Pythonをインストールする必要があります。
- Python 3.6.7(64ビット版)をインストールします。 Pythonはデフォルトの推奨場所にインストールすることをお勧めします。
- dill モジュールを、pip install dill でインストールします。
- ObjectScript コード(すなわち、do $system.OBJ.ImportDir("C:\InterSystems\Repos\Python\isc\py\","*.cls","c",,1))をProduction(Ensembleが有効な)名前空間に読み込みます。 既存の名前空間呼び出しを本番環境で有効にする場合は、write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1) にします。
- コールアウトDLL/SO/DYLIBをInterSystems IRISインストール環境の bin フォルダに置きます。 ライブラリファイルは write ##class(isc.py.Callout).GetLib() によって返されるパスに置く必要があります。
Windows
- PYTHONHOME 環境変数がPython 3.6.7を参照していることを確認します。
- SYSTEM PATH 環境変数に PYTHONHOME 変数(またはその参照先ディレクトリ)が含まれていることを確認します。
Linux
- SYSTEM PATH 環境変数に /usr/lib および /usr/lib/x86_64-linux-gnu が含まれていることを確認します(最初にあるのが望ましい)。 /etc/environment ファイルを使用して環境変数を設定します。
- undefined symbol: _Py_TrueStruct というエラーが発生した場合はTroubleshooting(トラブルシューティング)セクションを確認して PythonLib プロパティを指定してください。
Mac
- Python.orgのPython 3.6.7のみが現在サポートされています。 PATH 変数を確認してください。
環境変数を変更した場合は、InterSystems製品を再起動してください。
Docker
コンテナを使用することには次のような多くのメリットがあります。
- 移植性
- 効率性
- 分離
- 軽量
- 不変性
Dockerの詳細については、こちらの連載記事をご覧ください。
Python GatewayのDockerビルドはすべて2019.1のコンテナをベースにしています。
作成済みのイメージをプルする
docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy:latest を実行してプルし、Python GatewayをInterSystems IRIS Community Edition上で実行してください。 それだけです。
独自のイメージをビルドする
Dockerイメージをビルドするには、リポジトリのルートで次を実行します:docker build --force-rm --tag intersystemscommunity/irispy:latest イメージはデフォルトで intersystems/iris:2019.1.0.510.0-1 イメージにビルドされますが、これは IMAGE 変数を指定することで変更できます。InterSystems IRIS Community Editionからビルドするには、次を実行します:docker build --build-arg IMAGE=store/intersystems/iris:2019.1.0.510.0-community --force-rm --tag intersystemscommunity/irispy:latest
その後、次のコマンドでDockerイメージを実行できます。
docker run -d \
-p 52773:52773 \
-v /<HOST-DIR-WITH-iris.key>/:/mount \
--name irispy \
intersystemscommunity/irispy:latest \
--key /mount/iris.key
InterSystems IRIS Community Editionベースのイメージを実行している場合はキーの指定を省略できます。
Dockerの注意事項
Dockerに関するいくつかの情報を掲載しておきます。
- テストプロセス isc.py.test.Process はイメージのアーティファクトを一時ディレクトリに保存します。 このパスはマウントされているディレクトリに変更できます。 そのためには Correlation Matrix: Graph 呼び出しのアノテーションを編集し、f.savefig 関数に有効なファイルパスを指定してください。
- ターミナルアクセスの場合は、docker exec -it irispy sh を実行します。
- SuperUser/SYS または Admin/SYS のユーザー名/パスワードの組み合わせでSMPにアクセスしてください。
- コンテナを停止するには、docker stop irispy && docker rm --force irispy を実行してください。
インストールの検証
Python Gatewayをインストールした後は動作確認を行います。 以下のコマンドを実行してください。
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var)
write var
Python 変数 xの値 HELLO が出力されるはずです。 戻り値のステータスがエラーの場合、または var が空の場合はreadmeのtroubleshooting(トラブルシューティング)セクションを確認してください。
まとめ
Python Gatewayは迅速かつ簡単にインストールできます。 Dockerに精通している方は最新のイメージを入手してください。そうでない場合は、InterSystems IRISの主なOS(Windows、Linux、Mac)用のキットがあります。 次の記事では、Python Gatewayの使用を開始します。
図解入りガイド
ML Toolkitユーザーグループには、図解入りのインストールガイドもあります。 ML Toolkitユーザーグループは、InterSystems社のGitHub組織の一部として設定されている非公開GitHubリポジトリです。 このリポジトリは、ML Toolkitコンポーネントをインストール、学習、またはすでに使用している外部ユーザーを対象としています。 ML Toolkitユーザーグループに参加するには、以下の内容を含む簡単なメールを MLToolkit@intersystems.com 宛に送信してください(グループメンバーが議論中にあなたを認識して特定するために必要です)。
- GitHubのユーザー名
- 氏名(英文字表記の名前、姓の順)
- 組織(勤務先、通学先、または在宅勤務)
- 役職(組織での実際の役職、「学生」、または「無所属」)
- 国(本拠地としている国)
続けて「Python Gateway パート III:基本機能」をお読みください。
また、前のパート「Python Gateway パート I:はじめに」も確認してください。